home *** CD-ROM | disk | FTP | other *** search
/ PC Answers 2003 September / PC Answers September 2003.iso / Software / freeware / pixeltoolbox / Setup.exe / Main / PixelToolbox.exe / PixelToolbox.dxr / Scripts_30_clone tools.ls < prev    next >
Encoding:
Text File  |  2002-06-08  |  9.7 KB  |  139 lines

  1. global gVariable, gCast, gSize, gClonerFlag, gClonerHDist, gClonerVDist, gClonerMask, gClonerSize, myCurrentImage, myCurrentPreview
  2.  
  3. on tool1PxCloner
  4.   member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  5.   if sprite(9).blend = 0 then
  6.     alert("Right click to select the source pixel.")
  7.   else
  8.     if gClonerFlag = 1 then
  9.       myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  10.       myCurrentPreview = duplicate(member("preview", gCast).image)
  11.       repeat while the mouseDown
  12.         sourceColor = myCurrentImage.getPixel(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist)
  13.         if inside(point(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist), member(gSize & "x" & gSize, gCast).rect) then
  14.           myCurrentImage.setPixel((the mouseH - sprite(1).left) * 2 / gVariable / 2, (the mouseV - sprite(1).top) * 2 / gVariable / 2, sourceColor)
  15.         else
  16.           nothing()
  17.         end if
  18.         member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  19.         sprite(9).loc = point(((the mouseH - sprite(1).left) * 2 / gVariable / 2 * gVariable) + sprite(1).left + (gVariable / 2) + (gClonerHDist * gVariable), ((the mouseV - sprite(1).top) * 2 / gVariable / 2 * gVariable) + sprite(1).top + (gVariable / 2) + (gClonerVDist * gVariable))
  20.         updateStage()
  21.         put (the mouseH - sprite(1).left) * 2 / gVariable / 2 into field "location status X"
  22.         put (the mouseV - sprite(1).top) * 2 / gVariable / 2 into field "location status Y"
  23.         fnUpdatePreview()
  24.       end repeat
  25.     else
  26.       myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  27.       myCurrentPreview = duplicate(member("preview", gCast).image)
  28.       gClonerFlag = 1
  29.       if sprite(9).locH < the mouseH then
  30.         gClonerHDist = -(((the mouseH - sprite(1).left) * 2 / gVariable / 2) - ((sprite(9).locH - sprite(1).left) * 2 / gVariable / 2))
  31.       else
  32.         if sprite(9).locH >= the mouseH then
  33.           gClonerHDist = ((sprite(9).locH - sprite(1).left) * 2 / gVariable / 2) - ((the mouseH - sprite(1).left) * 2 / gVariable / 2)
  34.         end if
  35.       end if
  36.       if sprite(9).locV < the mouseV then
  37.         gClonerVDist = -(((the mouseV - sprite(1).top) * 2 / gVariable / 2) - ((sprite(9).locV - sprite(1).top) * 2 / gVariable / 2))
  38.       else
  39.         if sprite(9).locV >= the mouseV then
  40.           gClonerVDist = ((sprite(9).locV - sprite(1).top) * 2 / gVariable / 2) - ((the mouseV - sprite(1).top) * 2 / gVariable / 2)
  41.         end if
  42.       end if
  43.       repeat while the mouseDown
  44.         sourceColor = myCurrentImage.getPixel(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist)
  45.         if inside(point(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist), member(gSize & "x" & gSize, gCast).rect) then
  46.           myCurrentImage.setPixel((the mouseH - sprite(1).left) * 2 / gVariable / 2, (the mouseV - sprite(1).top) * 2 / gVariable / 2, sourceColor)
  47.         else
  48.           nothing()
  49.         end if
  50.         member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  51.         sprite(9).loc = point(((the mouseH - sprite(1).left) * 2 / gVariable / 2 * gVariable) + sprite(1).left + (gVariable / 2) + (gClonerHDist * gVariable), ((the mouseV - sprite(1).top) * 2 / gVariable / 2 * gVariable) + sprite(1).top + (gVariable / 2) + (gClonerVDist * gVariable))
  52.         updateStage()
  53.         put (the mouseH - sprite(1).left) * 2 / gVariable / 2 into field "location status X"
  54.         put (the mouseV - sprite(1).top) * 2 / gVariable / 2 into field "location status Y"
  55.         fnUpdatePreview()
  56.       end repeat
  57.     end if
  58.   end if
  59.   sprite(35).pState = 0
  60.   sendSprite(35, #setMember)
  61.   member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  62.   myCurrentImage = VOID
  63.   myCurrentPreview = VOID
  64.   put EMPTY into field "location status X"
  65.   put EMPTY into field "location status Y"
  66. end
  67.  
  68. on toolCloner
  69.   member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  70.   if sprite(9).blend = 0 then
  71.     alert("Right click to select the source pixel.")
  72.   else
  73.     if gClonerFlag = 1 then
  74.       myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  75.       myBufferImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  76.       myCurrentPreview = duplicate(member("preview", gCast).image)
  77.       repeat while the mouseDown
  78.         sourceArea = rect(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist - 4, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist - 4, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist + 5, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist + 5)
  79.         destinationArea = rect(((the mouseH - sprite(1).left) * 2 / gVariable / 2) - 4, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) - 4, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 5, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 5)
  80.         if inside(point(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist), member(gSize & "x" & gSize, gCast).rect) then
  81.           myCurrentImage.copyPixels(myBufferImage, destinationArea, sourceArea, [#maskImage: member(gClonerMask).image.createMask(), #maskOffset: point(sourceArea.left, sourceArea.top)])
  82.         else
  83.           nothing()
  84.         end if
  85.         member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  86.         sprite(8).rect = rect(the mouseH - (gClonerSize * gVariable / 2), the mouseV - (gClonerSize * gVariable / 2), the mouseH + (gClonerSize * gVariable / 2), the mouseV + (gClonerSize * gVariable / 2))
  87.         sprite(9).loc = point(((the mouseH - sprite(1).left) * 2 / gVariable / 2 * gVariable) + sprite(1).left + (gVariable / 2) + (gClonerHDist * gVariable), ((the mouseV - sprite(1).top) * 2 / gVariable / 2 * gVariable) + sprite(1).top + (gVariable / 2) + (gClonerVDist * gVariable))
  88.         updateStage()
  89.         put (the mouseH - sprite(1).left) * 2 / gVariable / 2 into field "location status X"
  90.         put (the mouseV - sprite(1).top) * 2 / gVariable / 2 into field "location status Y"
  91.         fnUpdatePreview()
  92.       end repeat
  93.     else
  94.       myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  95.       myBufferImage = duplicate(member(gSize & "x" & gSize, gCast).image)
  96.       myCurrentPreview = duplicate(member("preview", gCast).image)
  97.       gClonerFlag = 1
  98.       if sprite(9).locH < the mouseH then
  99.         gClonerHDist = -(((the mouseH - sprite(1).left) * 2 / gVariable / 2) - ((sprite(9).locH - sprite(1).left) * 2 / gVariable / 2))
  100.       else
  101.         if sprite(9).locH >= the mouseH then
  102.           gClonerHDist = ((sprite(9).locH - sprite(1).left) * 2 / gVariable / 2) - ((the mouseH - sprite(1).left) * 2 / gVariable / 2)
  103.         end if
  104.       end if
  105.       if sprite(9).locV < the mouseV then
  106.         gClonerVDist = -(((the mouseV - sprite(1).top) * 2 / gVariable / 2) - ((sprite(9).locV - sprite(1).top) * 2 / gVariable / 2))
  107.       else
  108.         if sprite(9).locV >= the mouseV then
  109.           gClonerVDist = ((sprite(9).locV - sprite(1).top) * 2 / gVariable / 2) - ((the mouseV - sprite(1).top) * 2 / gVariable / 2)
  110.         end if
  111.       end if
  112.       repeat while the mouseDown
  113.         sourceArea = rect(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist - 4, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist - 4, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist + 5, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist + 5)
  114.         destinationArea = rect(((the mouseH - sprite(1).left) * 2 / gVariable / 2) - 4, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) - 4, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 5, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 5)
  115.         if inside(point(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist), member(gSize & "x" & gSize, gCast).rect) then
  116.           myCurrentImage.copyPixels(myBufferImage, destinationArea, sourceArea, [#maskImage: member(gClonerMask).image.createMask(), #maskOffset: point(sourceArea.left, sourceArea.top)])
  117.         else
  118.           nothing()
  119.         end if
  120.         member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
  121.         sprite(8).rect = rect(the mouseH - (gClonerSize * gVariable / 2), the mouseV - (gClonerSize * gVariable / 2), the mouseH + (gClonerSize * gVariable / 2), the mouseV + (gClonerSize * gVariable / 2))
  122.         sprite(9).loc = point(((the mouseH - sprite(1).left) * 2 / gVariable / 2 * gVariable) + sprite(1).left + (gVariable / 2) + (gClonerHDist * gVariable), ((the mouseV - sprite(1).top) * 2 / gVariable / 2 * gVariable) + sprite(1).top + (gVariable / 2) + (gClonerVDist * gVariable))
  123.         updateStage()
  124.         put (the mouseH - sprite(1).left) * 2 / gVariable / 2 into field "location status X"
  125.         put (the mouseV - sprite(1).top) * 2 / gVariable / 2 into field "location status Y"
  126.         fnUpdatePreview()
  127.       end repeat
  128.     end if
  129.   end if
  130.   sprite(35).pState = 0
  131.   sendSprite(35, #setMember)
  132.   member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
  133.   myCurrentImage = VOID
  134.   myBufferImage = VOID
  135.   myCurrentPreview = VOID
  136.   put EMPTY into field "location status X"
  137.   put EMPTY into field "location status Y"
  138. end
  139.